【Codewars每日一题】- Invert values

题目

题目地址

Given a set of numbers, return the additive inverse of each. Each positive becomes negatives, and the negatives become positives.

1
2
3
invert([1,2,3,4,5]) == [-1,-2,-3,-4,-5]
invert([1,-2,3,-4,5]) == [-1,2,-3,4,-5]
invert([]) == []

You can assume that all values are integers.

思路

遍历列表,分别对每个数字取相反数,再将其放入到新的list里。

答案

我的答案

1
2
3
4
5
def invert(lst):
result = []
for a in lst:
result.append(0-a)
return result

最佳答案

1
2
def invert(lst):
return [-x for x in lst]
1
2
def invert(lst):
return [i*-1 for i in lst]

本题还是比较简单的,没有很多技巧。主要在于如何取相反数,一般有两种方法,用-x或者x * -1。另外需要熟悉return [-x for x in lst]这种list的处理方式。

知识点

list.append()

sort()sorted()的不同在于,sort()是在原位重新排列列表,而sorted()产生一个新的列表,也就是说sorted()函数有一个copy的过程,这样多少会带来性能的损耗。另外二者的使用方法也有不同。

描述

append()方法用于在列表末尾添加新的对象。

语法

list.append(obj)

  • obj – 添加到列表末尾的对象。

返回值

该方法无返回值,但是会修改原来的列表。

示例

1
2
3
4
5
6
7
8
9
10
>>> a = []
>>> a.append(1)
>>> a
[1]
>>> a.append([2,3,'a'])
>>> a
[1, [2, 3, 'a']]
>>> a.extend([2,3,'a'])
>>> a
[1, [2, 3, 'a'], 2, 3, 'a']

注意append()extend()的不同。

hoxis wechat
一个脱离了高级趣味的程序员,关注回复1024有惊喜~
赞赏一杯咖啡
0%